package tech.wangtong.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import tech.wangtong.pojo.User;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor implements HandlerInterceptor {
    /*重写三个方法(属于默认方法:就需要觉得是否重写)*/
    /*在控制层方法之前拦截
    * return true 表示可以访问控制层方法
    * return false 表示不可以访问*/
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        User user =(User) request.getSession().getAttribute("user");
        if(user==null){
            //重定向到登录页面
            response.sendRedirect("/login");
            return false;//不能访问控制层方法
        }else{
            return true;//可以访问控制层方法
        }
    }
    /*在控制层方法调用之后,视图解析解之前调用
    * 一般通过它对请求作用域的数据做二次修改的*/
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    }
    /*在控制层执行结束并且返回,视图解析器也执行结束了
    * 一般通过它做一些清理工作*/
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}
